package util;

import android.graphics.PointF;

public class GameVars {
	public static final float MOVEMENT_SNAP_DELTA = .1f;
	public static final float SCROLL_MOD = .0025f;
	public static final float MOVEMENT_MOD = 0.0025f;
	public static final float MOVEMENT_SENSIVITY = 3;
	public static final float PLAYER_BOUNDS_BUFFER = .25f;
	
		// Glyph / Dialog Vars
	public static final float GLYPH_MOD = 0.2f;
	public static final float DIALOGUE_INDENT = .25f;
	
	public static final PointF QUESTION_LOCATOIN = new PointF(3, 9.5f);
	
		// Stage
	public static final float TRANSLATION_MOD = 0.0025f;
	public static final short STAGE_COUNT = 2;
	public static final short STAGE_ADDING_SUBTRACTING = 0;
	public static final short LEVEL_ADDING = 0;
	public static final short LEVEL_SUBRACTING = 1;
	public static final short LEVEL_ADDING_SUBTRACTING = 2;
	public static final short STAGE_MULTIPLYING_DIVIDING = 1;
	public static final short LEVEL_MULTIPLYING = 0;
	public static final short LEVEL_DIVIDING = 1;
	public static final short LEVEL_MULTIPLYING_DIVIDING = 2;

	public static final short STAGE_OPERATORS_ADD = 0;
	public static final short STAGE_OPERATORS_SUB = 1;
	public static final short STAGE_OPERATORS_ADD_AND_SUB = 2;
	public static final short STAGE_OPERATORS_MUL = 3;
	public static final short STAGE_OPERATORS_DIV = 4;
	public static final short STAGE_OPERATORS_MUL_AND_DIV = 5;

	public static final short OPERATION_ADD = 0;
	public static final short OPERATION_SUB = 1;
	public static final short OPERATION_MUL = 2;
	public static final short OPERATION_DIV = 3;
	
	public static final short[] LEVEL_COUNT = {3, 3};
	public static final short[] LEVEL_START_INDEX = {0, 3};
	
	public static final float GATE_START_MOD = 3.75f;
	
	// Firework / Particle Stuff
	public static final short FIREWORK_PARTICLE_COUNT = 50;

	public static final short PARTICLE_COLOR_COUNT = 5;
	
	public static final short PARTICLE_COLOR_INDEX_RED = 0;
	public static final short PARTICLE_COLOR_INDEX_BLUE = 1;
	public static final short PARTICLE_COLOR_INDEX_GREEN = 2;
	public static final short PARTICLE_COLOR_INDEX_YELLOW = 3;
	public static final short PARTICLE_COLOR_INDEX_PURPLE = 4;
	
	public static final float PARTICLE_SQUARE_SIZE = .05f;

	public static final float PARTICLE_X_VELOCITY_MAX = .005f;
	public static final float PARTICLE_Y_VELOCITY_MAX = .0075f;
	public static final float PARTICLE_Y_VELOCITY_MOD = .00001f;
	
	public static final String[] STAGE_STRINGS = {"Adding and Subtracting", "Multiplying and Dividing"};
	/** [Stage][Level] */
	public static final String[][] LEVEL_STRINGS = {
		{ "Adding", "Subtracting", "Mixed Adding and Subtracting" },
		{ "Multiplying", "Dividing", "Mixed Multiplying and Dividing" }
	};
	
	// Lanes
		// Each 'GL Line' is a Lane.
	public static final short LANE_COUNT = 5;
	/** [Difficulty] In GL Units */
	public static final short[] ROW_DISTANCE = {20, 15, 12, 10};
	public static final float[] SPEED_INCREMENT = {0.0001f, 0.000075f, 0.00006f, 0.00005f};
	
	// Difficulties
	public static final short DIFFICULTY_COUNT = 4;
	public static final short DIFFICULTY_EASY = 0;
	public static final short DIFFICULTY_NORMAL = 1;
	public static final short DIFFICULTY_HARD = 2;
	public static final short DIFFICULTY_INSANE = 3;
	public static final String[] DIFFICULTY_STRINGS = {"EASY", "NOMAL", "HARD", "INSANE"};

	// Text Alignment
	public static final short TEXT_ALIGNMENT_LEFT = -1;
	public static final short TEXT_ALIGNMENT_CENTER = 0;
	public static final short TEXT_ALIGNMENT_RIGHT = 1;
		
	// Buttons
	public static final short BUTTON_TYPE_MENU = 1;
	public static final short BUTTON_TYPE_ARROW_UP = 2;
	public static final short BUTTON_TYPE_ARROW_RIGHT = 3;
	public static final short BUTTON_TYPE_ARROW_DOWN = 4;
	public static final short BUTTON_TYPE_ARROW_LEFT = 5;

	public static final short BUTTON_TYPE_MOVE_LEFT = 6;
	public static final short BUTTON_TYPE_MOVE_RIGHT = 7;
	
		// Nums
	public static final int BUTTON_NUM_QUIT = -1;
	public static final int BUTTON_NUM_PLAY = 1;
	public static final int BUTTON_NUM_HIGH_SCORES = 2;
	public static final int BUTTON_NUM_OPTION = 3;
	public static final int BUTTON_NUM_EXTRAS = 4;
	public static final int BUTTON_NUM_BACK = -2;
	public static final int BUTTON_NUM_NEXT = 5;
	
	public static final int BUTTON_NUM_NEXT_STAGE = 10;
	public static final int BUTTON_NUM_RETURN_TO_SELECTION = -5;

	public static final int DIFFICULTY_START_INDEX = 6;
	public static final int[] BUTTON_NUM_DIFFICULTIES = { DIFFICULTY_EASY, DIFFICULTY_NORMAL, DIFFICULTY_HARD, DIFFICULTY_INSANE };
	

	public static final int BUTTON_NUM_UP = 10;
	public static final int BUTTON_NUM_RIGHT = 11;
	public static final int BUTTON_NUM_DOWN = 12;
	public static final int BUTTON_NUM_LEFT = 13;

		// In Stage Buttons
	public static final int BUTTON_NUM_RESUME = 14;;
	public static final int BUTTON_NUM_RESTART = 15;
	public static final int BUTTON_NUM_GOTO_MENU = 16;
	public static final int BUTTON_NUM_RETRY = 17;

	public static final int BUTTON_NUM_MOVE_LEFT = 18;
	public static final int BUTTON_NUM_MOVE_RIGHT = 19;
	
	// Game Layers
	public static final short GAME_LAYER_SPLASH = -1;
	public static final short GAME_LAYER_MENU = 0;
	public static final short GAME_LAYER_OPTIONS = 1;
	public static final short GAME_LAYER_HIGH_SCORES = 2;
	public static final short GAME_LAYER_EXTRAS = 3;
	public static final short GAME_LAYER_STAGE = 4;
	
	// Menu Layers
	public static final short MENU_LAYER_MENU = 0;
	public static final short MENU_LAYER_STAGE_SELECT = 1;
	public static final short MENU_LAYER_LEVEL_SELECT = 2;
	public static final short MENU_LAYER_DIFFICULTY_SELECT = 3;	
	public static final short MENU_LAYER_LENGTH_SELECT = 4;	
	
	// Texture Indexes
	public static final short TEXTURE_MENU_BUTTON = 0;
	public static final short TEXTURE_NAV_ARROW = 1;
	public static final short TEXTURE_CONTROL_BOX = 2;
	public static final short TEXTURE_CONTROL_CIRCLE = 3;

	public static final short TEXTURE_PLAYER = 4;
	public static final short TEXTURE_GATE = 5;

	public static final short TEXTURE_SPLASH_BACKGROUND = (short) (6);

	public static final short TEXTURE_BACKGROUND_UPPER_LAYER = (short) (TEXTURE_SPLASH_BACKGROUND + 1);
	public static final short TEXTURE_BACKGROUND_LOWER_LAYER = (short) (TEXTURE_BACKGROUND_UPPER_LAYER + 1);	
}
